package criptografia;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import sun.misc.BASE64Encoder;

public class CriptografiaGenerica {
     
    private MessageDigest compilarMensagem;
    private BASE64Encoder encoder;
     
    protected void useAlgoritmo(String algoritmo) throws NoSuchAlgorithmException{
    if (compilarMensagem == null || compilarMensagem.getAlgorithm() != algoritmo){
        compilarMensagem = MessageDigest.getInstance(algoritmo);
    }
        if (encoder == null) {
            encoder = new BASE64Encoder();
        }
    }
     
    protected String encriptografarUsandoAlgoritmo(String algoritmo, String valor) throws NoSuchAlgorithmException{
        if (valor == null) {
            throw new IllegalArgumentException("Valor null");
        }
         
        useAlgoritmo(algoritmo);
        byte[] hash = compilarMensagem.digest(valor.getBytes());
        return encoder.encode(hash);
    }
}
